// home 小仓库
import { reqCategoryList, reqGetBannerList, reqFloorList } from "@/api";

// state：仓库存储数据的地方
const state = {
  // state 中数据默认初始值不能乱写，服务器返回对象，服务器返回数组
  categoryList: [],
  bannerList: [],
  floorList: [],
};
// mutations:修改 state 唯一手段
const mutations = {
  CATEGORYLIST(state, categoryList){
    state.categoryList = categoryList;
  },
  GEIBANNERLIST(state, bannerList){
    state.bannerList = bannerList;
  },
  GETFLOORLIST(state,floorList){
    state.floorList = floorList
  }
};
// action：处理 action，可以书写自己业务逻辑，也可以处理异步
const actions = {
  //通过API 里面的接口函数调用，向服务器发起请求，获取服务器的数据
  async categoryList({commit}){
    let result = await reqCategoryList();
    // console.log(result);
    if(result.code==200){
      commit('CATEGORYLIST',result.data);
    }
    //一级列表限制数组长度为16
    state.categoryList.length = 16
  },

  //获取首页轮播图的数据
  async getBannerList ({commit}){
    let result = await reqGetBannerList();
    // console.log(result);
    if(result.code == 200){
      commit('GEIBANNERLIST',result.data)
    }
  },

  //获取 floor 数据
  async getFloorList ({commit}){
    let result =await reqFloorList();
    if(result.code == 200){
      commit('GETFLOORLIST',result.data)
    } 
  }
};
// getters: 理解为计算属性，用于简化仓库数据，让组件获取仓库数据更加方便
const getters = {};

// 对外暴露 Store 一个对象
export default{
  state,
  mutations,
  actions,
  getters,
}